#include "m.h"

void shuru(p_list new_node)//输入兼修改函数
{
    int fd,gd,cd,shi,ge;
    char buf[1]="\n";
    char buf1[1]="\t";
    char shi1,ge1;

    printf("请输入学生学号\n");
    scanf("%s",new_node->number);
    

    printf("请输入学生姓名\n");
    scanf("%s",new_node->name);
   

    printf("请输入学生年龄\n");
    scanf("%d",&new_node->age);
    
    printf("请输入学生电话号\n");
    scanf("%s",new_node->tel);
    

    printf("请输入学生宿舍号\n");
    scanf("%s",new_node->ssh);


    shi=new_node->age/10;
    ge=new_node->age%10;

    shi1=shi+48;
    ge1=ge+48;

    if(shi1=='0')
    {
    shi1='\0';
    }


    fd=open("./student_information.txt",O_RDWR|O_APPEND);
    if(fd==-1)
    {
    perror("error");
    }
    else
    {
    printf("文件操作符：%d\n",fd);
    }

    //写入学号
    gd=write(fd,new_node->number,strlen(new_node->number));
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }

    gd=write(fd,buf1,1);
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }

    //写入名字
    gd=write(fd,new_node->name,strlen(new_node->name));
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }

    gd=write(fd,buf1,1);
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }

    //写入年龄
    gd=write(fd,&shi1,1);
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }
    gd=write(fd,&ge1,1);
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }
    

    gd=write(fd,buf1,1);
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }

    //写入电话
    gd=write(fd,new_node->tel,strlen(new_node->tel));
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }

    gd=write(fd,buf1,1);
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }

    //写入宿舍号
    gd=write(fd,new_node->ssh,strlen(new_node->ssh));
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }

    gd=write(fd,buf,1);
    if(gd==-1)
    {
    perror("error");
    }
    else
    {
    printf("写入的字节数：%d\n",gd);
    }

    cd=close(fd);
    if(cd==-1)
    {
    perror("error");
    }
    else
    {
    printf("文件关闭成功\n");
    }

return;
}



void add_node_tail(p_list head)//插入功能
{
    
    p_list new_node = malloc(sizeof(list));
    if (new_node == NULL)
    {
        perror("init new_node error");
        return ;
    }
    
    shuru(new_node);//输入函数

    p_list node;
    list_for_each_entry(node, &(head->list), list)
    {
        if(strcmp(node->number,new_node->number)==0)
        {
        printf("学号重复，无法添加\n");
        return;
        }
    }
    
    list_add_tail(&(new_node->list), &(head->list));

    return;
}